//#include<iostream>
//using namespace std;
////int sum(int** martrix, int i, int j, int p, int q) {
////	int s = 0;
////	for (int x = i; x <= j; x++)
////		for (int y = p; y <= q; y++)
////			s += martrix[x][y];
////	return s;
////}
//void setArray(int**martrix,int* array,int n,  int j) {
//	for (int x = 1; x <= n; x++)
//		array[x] += martrix[j][x];
//}
//int max(int a, int b) {
//	return a > b ? a : b;
//}
//int maxSubarray(int* array, int n) {
//	int s = 0;
//	int* f = (int*)calloc(n + 1, sizeof(int));
//	for (int i = 1; i <= n; i++){
//		f[i] = max(f[i - 1] + array[i], array[i]);
//		s = max(s, f[i]);
//	}
//	return s;
//}
//int main() {
//	int m, n;
//	cin >> m >> n;
//	int** martrix = (int**)calloc(m + 1, sizeof(int*));
//	for (int i = 0; i <= m; i++)
//		martrix[i] = (int*)calloc(n + 1, sizeof(int));
//	for (int i = 1; i <= m; i++)
//		for (int j = 1; j <= n; j++)
//			cin >> martrix[i][j];
//	int s = 0;
//	for(int i=1;i<=m;i++){
//		int* array = (int*)calloc(n + 1, sizeof(int));
//		for (int j = i; j <= n; j++) {
//			setArray(martrix, array, n, j);
//			s = max(s, maxSubarray(array, n));
//		}
//	}
//	cout << s << endl;
//	return 0;
//}